package cn.edu.njust.alg.leetcode;

/**
 * 创建时间：2015年6月15日 上午11:47:37 项目名称：AlgorithmExercise
 * 
 * @author Zhou Xiumin
 * @version 1.0
 * @since JDK 1.7.0_21 文件名称：Leetcode_0_t.java 类说明：
 */
public class Leetcode_222_Count_Complete_Tree_Nodes {
	public int countNodes(TreeNode root) {
		if (root == null) {
			return 0;
		}
		int leftcount = 0;
		int rightcount = 0;
		TreeNode p = root;
		while (p != null) {
			p = p.left;
			leftcount++;
		}
		p = root;
		while (p != null) {
			p = p.right;
			rightcount++;
		}
		if (leftcount == rightcount) {
			return (1<<leftcount) - 1;
		} else {
			return 1 + countNodes(root.left) + countNodes(root.right);
		}
	}

	public static void main(String[] args) {

	}

}
